/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package delegate;


import java.util.List;
import java.util.Properties;
import javax.naming.InitialContext;
import suministros.ejb30.TO.AnoTO;
import suministros.ejb30.TO.LocalidadTO;
import suministros.ejb30.TO.MesTO;
import suministros.ejb30.TO.ProveedorTO;
import suministros.ejb30.TO.SuministroTO;
import suministros.ejb30.TO.ZonaTO;
import suministros.ejb30.entity.AreaEmpresa;
import suministros.ejb30.entity.Asistencia;
import suministros.ejb30.entity.CargoEmpresa;
import suministros.ejb30.entity.CosteoDiario;
import suministros.ejb30.entity.ElementoCosto;
import suministros.ejb30.entity.Parametros;
import suministros.ejb30.entity.Persona;
import suministros.ejb30.entity.TipoCambioDiario;
import suministros.ejb30.entity.TipoTrabajador;
import suministros.ejb30.entity.Trabajador;

import suministros.ejb30.facade.SumiAdministracionGestionFacadeRemote;


/**
 *
 * @author Renato
 */
public class GestionDelegate {
 private static GestionDelegate gestionDelegate;
 private SumiAdministracionGestionFacadeRemote gestionFacade;

  private GestionDelegate()
    throws Exception
  {
    try
    {
      //Properties propSistema = Propiedades.leePropPrincipal();
      Properties env = new Properties();
      utiles.Propiedades.leePropPrincipal();
      env.setProperty("org.omg.CORBA.ORBInitialHost", utiles.Propiedades.getServidor());
      env.setProperty("org.omg.CORBA.ORBInitialPort", utiles.Propiedades.getServPuerto());
      InitialContext ctx = new InitialContext(env);
      this.gestionFacade = ((SumiAdministracionGestionFacadeRemote)ctx.lookup("suministros.ejb30.facade.SumiAdministracionGestionFacadeRemote"));
    }
    catch (Exception e) {
      throw e;
    }

    
  }

  public static GestionDelegate getInstance() throws Exception {
    if (gestionDelegate == null) {
      gestionDelegate = new GestionDelegate();
    }
    return gestionDelegate;
  }

    public boolean insertaAsistencias(List<Asistencia> asistencias, Integer area) throws Exception {
        return gestionFacade.insertaAsistencias(asistencias,area);
    }

    public List<Asistencia> getAsistenciaDiaria(String fecha,int area) throws Exception {
        return gestionFacade.getAsistenciaDiaria(fecha,area);
    }

    public List<ProveedorTO> listaProveedor() throws Exception {
        return gestionFacade.listaProveedor();
    }

    public List<SuministroTO> getListaSuministros() throws Exception {
        return gestionFacade.getListaSuministros();
    }
    public List<Parametros> getListaParametrosLike(String id) throws Exception {
      
      return this.gestionFacade.getListaParametrosLike(id);
    }

    public List<ElementoCosto> getListaElementoCosto() throws Exception {
        return gestionFacade.getListaElementoCosto();
    }

    public boolean insertaCosteoDiario(CosteoDiario costeo) throws Exception {
        return gestionFacade.insertaCosteoDiario(costeo);
    }

    public List<CosteoDiario> getCosteoDiario() throws Exception {
        return gestionFacade.getCosteoDiario();
    }

    public boolean insertaTipoCambioDiario(TipoCambioDiario cambio) throws Exception {
        return gestionFacade.insertaTipoCambioDiario(cambio);
    }

    public List<TipoCambioDiario> getTipoCambioDiario(String anio, String mes) throws Exception {
        return gestionFacade.getTipoCambioDiario(anio,mes);
    }

    public boolean insertaTrabajadorPersona(Trabajador trabajador, Persona persona) throws Exception {
        return gestionFacade.insertaTrabajadorPersona(trabajador, persona);
    }

    public Trabajador getTrabajador(String codigo) throws Exception {
        return gestionFacade.getTrabajador(codigo);
    }

    public Persona getPersona(String codigo) throws Exception {
         return gestionFacade.getPersona(codigo);
    }
    

   public List<ZonaTO> getListaZonas() throws Exception {
    return this.gestionFacade.getListaZonas();
  }

  public List<LocalidadTO> getListaLocalidades() throws Exception {
      return this.gestionFacade.getListaLocalidades();
  }

  public List<TipoTrabajador> getListaTipoTrabajador() throws Exception {
        return this.gestionFacade.getListaTipoTrabajador();
    }
   public List<CargoEmpresa> getListaCargoEmpresa() throws Exception {
        return gestionFacade.getListaCargoEmpresa();
    }

    public List<AreaEmpresa> getListaAreaEmpresa() throws Exception {
        return gestionFacade.getListaAreaEmpresa();
    }

    public CargoEmpresa getCargoEmpresa(int codigo) throws Exception {
        return gestionFacade.getCargoEmpresa(codigo);
    }

    public AreaEmpresa getAreaEmpresa(int codigo) throws Exception {
        return gestionFacade.getAreaEmpresa(codigo);
    }

    public boolean insertaCargo(CargoEmpresa cargo) throws Exception {
        return gestionFacade.insertaCargo(cargo);
    }

    public boolean insertaArea(AreaEmpresa area) throws Exception {
        return gestionFacade.insertaArea(area);
    }

    public boolean eliminaElementoCosto(String id) throws Exception {
        return gestionFacade.eliminaElementoCosto(id);
    }

    public boolean operaElementoCosto(ElementoCosto elemento) throws Exception {
        return gestionFacade.operaElementoCosto(elemento);
    }

    public List<AnoTO> getListaAnos() throws Exception {
        return this.gestionFacade.getListaAnos();
    }

    public List<MesTO> getListaMeses() throws Exception {
        return this.gestionFacade.getListaMeses();
    }

    public List<MesTO> getListaMesCambio() throws Exception {
        return gestionFacade.getListaMesCambio();
    }

    public List<AnoTO> getListaAnosCambio() throws Exception {
        return gestionFacade.getListaAnosCambio();
    }

}
